/*
 * @Author: Low-key 1334637865@qq.com
 * @Date: 2023-08-07 09:46:03
 * @LastEditors: Low-key 1334637865@qq.com
 * @LastEditTime: 2023-08-08 16:44:09
 * @FilePath: \crm-mobile-ui\vue.config.js
 * @Description: 这是默认设置,请设置`customMade`, 打开koroFileHeader查看配置 进行设置: https://github.com/OBKoro1/koro1FileHeader/wiki/%E9%85%8D%E7%BD%AE
 */

const path = require("path");
const timeStamp = new Date().getTime()
// const CompressionWebpackPlugin = require("compression-webpack-plugin");
module.exports = {
  // 部署应用包时的基本 URL
  publicPath: "./",
  // 当运行 vue-cli-service build  ( npm run build )  时生成的生产环境构建文件的目录
  outputDir: "dist",
  // 放置生成的静态资源 (js、css、img、fonts) 的 (相对于 outputDir 的) 目录
  assetsDir: "static",
  pluginOptions: {
    "style-resources-loader": {
      preProcessor: "less",
      patterns: [
        // 这个是加上自己的路径，
        // 注意：试过不能使用别名路径 绝对路径
        path.resolve(__dirname, "./src/assets/css/variable.less")
      ]
    }
  },
  configureWebpack: {
    output: {
      filename: `js/[name].js?t=${timeStamp}`,
      chunkFilename: `js/[name].js?t=${timeStamp}`
    }
  },
  // configureWebpack: config => {
  //   // 配置webpack 压缩
  //   config.plugins.push(
  //     new CompressionWebpackPlugin({
  //       test: /\.js$|\.html$|\.css$/,
  //       // 超过4kb压缩
  //       threshold: 4096,
  //       deleteOriginalAssets: true
  //     })
  //   );
  // },

  // optimization: {
  //   /**
  //    * 详情见官网：https://webpack.docschina.org/configuration/optimization/#optimizationruntimechunk
  //    * */
  //   runtimeChunk: 'single',
  //   /**
  //    * 以前是CommonsChunkPlugin，现在换成optimization.splitChunks。普通项目下方的配置就足够用啦
  //    * 详情见官网：https://webpack.docschina.org/configuration/optimization/#optimizationsplitchunks
  //    * */
  //   splitChunks: {
  //     chunks: 'all', // 可选值：all，async 和 initial。all功能最强大，所以咱们就使用all
  //     maxInitialRequests: Infinity, // 最大并行请求数，为了以防万一，设置无穷大即可
  //     minSize: 20000, // 引入的模块大于20kb才做代码分割，官方默认20000，这里不用修改了
  //     maxSize: 60000, // 若引入的模块大于60kb，则告诉webpack尝试再进行拆分
  //     cacheGroups: {
  //       vendors: {
  //         test: /[\\/]node_modules[\\/]/, // 使用正则匹配node_modules中引入的模块
  //         priority: -10, // 优先级值越大优先级越高，默认-10，不用修改
  //         name (module) { // 设定分包以后的文件模块名字，按照包名字替换拼接一下
  //           const packageName = module.context.match(/[\\/]node_modules[\\/](.*?)([\\/]|$)/)[1]
  //           return `npm.${packageName.replace('@', '')}`
  //         },
  //       },
  //     },
  //   }
  // },
  // 配置跨域，仅开发环境使用  正式环境需后端配置跨域
  devServer: {
    proxy: {
      // "/reportapi": {
      //   target: "https://test.onestep6.com/reportapi", // 需要跨域的地址 域名
      //   changeOrigin: true, // 是否要跨域
      //   pathRewrite: {
      //     "^/reportapi": ""
      //   }
      // },
      // "/api": {
      //   target: "https://test.onestep6.com/api", // 需要跨域的地址 域名
      //   changeOrigin: true, // 是否要跨域
      //   pathRewrite: {
      //     "^/api": ""
      //   }
      // },
      "/": {
        target: "https://xcx.ysdj1688.com", // 需要跨域的地址 域名
        changeOrigin: true, // 是否要跨域
        pathRewrite: {
          // 路径重写， 配置之后基础域名也要相应的改变   因为请求地址变成了 本地  http://localhost:8080/#/(端口号不一定，可不写，自动添加本地前缀)
          "^/": ""
        }
      },
      
    },
  },
  pages: {
    index: {
      entry: 'src/main.js', // 入口文件
      title: '云上到家'
    }
  },

  // 是否要生成 .map 文件，服务器并不需要该文件
  // 如果你不需要生产环境的 source map，可以将其设置为 false 以加速生产环境构建。
  productionSourceMap: false,

  // 配置 vant 的自定义主题
  css: {
    loaderOptions: {
      less: {
        // 若使用 less-loader@5，请移除 lessOptions 这一级，直接配置选项。
        // lessOptions: {
        modifyVars: {
          // 通过 less 文件覆盖（文件路径为绝对路径）
          hack: `true; @import '${path.resolve(
            __dirname,
            "./src/plugins/vant.less"
          )}';`
        }
        // },
      }
    },
    extract: {
      filename: `css/[name].css?t=${timeStamp}`,
      chunkFilename: `css/[name].css?t=${timeStamp}`
    }
  }
};

// 详细配置参考 @vue/cli 配置 https://cli.vuejs.org/zh/config/#%E5%85%A8%E5%B1%80-cli-%E9%85%8D%E7%BD%AE
